Heterogeneous networks using two channel hopping protocols

ABSTRACT

Systems and methods are disclosed for facilitating communications in heterogeneous networks that include different data networks. A gateway device is configured to communicate with a first network using a TSCH protocol and with a second network using a channel hopping CSMA protocol. The gateway device can determine, during a first part of a TSCH timeslot, whether a message is received from the first network. If no message is received, the gateway device switches to the second network during a second part of the timeslot. If the gateway device receives a message from the second network, the gateway device may continue to receive the message. The receipt of the message in the second network may continue into a subsequent TSCH timeslot or may be interrupted if certain conditions are met.

RELATED APPLICATIONS

This application is a continuation of U.S. patent application Ser. No. 16/535,382, titled “Heterogeneous Networks Using Two Channel Hopping Protocols” and filed on Aug. 8, 2019 (Allowed), which is incorporated herein in its entirety.

TECHNICAL FIELD

This disclosure relates generally to networking and more particularly relates to facilitating communications in heterogeneous data networks.

BACKGROUND

Some data networks may include different networks implementing different network protocols due to various reasons. For example, utility companies and other resource providers may use a utility data network for communicating data collected, measured or otherwise obtained by various sensors or meters deployed in a resource distribution network, such as an electricity distribution network. Different utility data networks might be deployed for different resources, such as one utility data network deployed for an electricity distribution network and another utility data network deployed for a gas distribution network. Further, one resource distribution network might be associated with multiple different utility data networks. For example, different utility data networks might be deployed for the same electricity distribution network where the different data networks may use different types of network protocols. The different data networks may result from different stages of deployment or different geographical regions.

In order for the nodes in a heterogeneous data networks to communicate with each other, the heterogeneous data networks need to include devices having multiple radio transceivers that process separate messages from the separate networks. Using multiple radio transceivers on the same device increases the complexity of the design and manufacturing of the devices. Such an implementation is also susceptible to interference from these multiple radios on the same device. Accordingly, systems and methods are desirable for facilitating communications in heterogeneous data networks using devices with a single radio transceiver.

SUMMARY

Systems and methods are disclosed for facilitating communications in heterogeneous networks that include different data networks. For instance, a gateway device includes a single transceiver device configured to communicate with a first network using a time slotted channel hopping (TSCH) protocol and with a second network using a channel hopping CSMA protocol. The gateway device is configured for during a first part of a first timeslot of the TSCH protocol, listening on the first network using a first channel based on a hopping pattern for the TSCH protocol, and determining that no message is received from the first network during the first part of the first timeslot. In response to determining that no message is received from the first network during the first part of the first timeslot, the gateway device is configured for performing operations including determining a second channel of a current dwell interval of the second network based on a hopping sequence for the channel hopping CSMA protocol. The operations further include switching to the second channel to listen on the second network during a second part of the first timeslot, determining that a message is received from the second network during the second part of the first timeslot. The operations further include in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network beyond the first timeslot. The operations further include at a beginning of a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network, determining that a condition for switching to the first network is satisfied. In response to determining that a condition for switching back to the first network has met, the operations include determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, stopping receiving the message from the second network, and switching to the third channel to listen on the first network during a first part of the second timeslot.

In another example, a system includes a first network including a first set of nodes that communicate via a time slotted channel hopping (TSCH) protocol. The first set of nodes includes a gateway device. The system also includes a second network including a second set of nodes that communicate via a channel hopping CSMA protocol. The second set of nodes also include the gateway device. The gateway device includes a single transceiver device configured to communicate with the first network using the TSCH protocol and with the second network using the channel hopping CSMA protocol. The gateway device is configured for during a first part of a first timeslot of the TSCH protocol, listening on the first network using a first channel based on a hopping pattern for the TSCH protocol. The gateway device is further configured for determining that no message is received from the first network during the first part of the first timeslot, and in response to determining that no message is received from the first network during the first part of the first timeslot, performing further operations. The operations include determining a second channel of a current dwell interval of the second network based on a hopping sequence for the channel hopping CSMA protocol, and switching to the second channel to listen on the second network during a second part of the first timeslot. The operations also include determining that a message is received from the second network during the second part of the first timeslot, and in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network during a remainder of the first timeslot. The operations further include during a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network, determining that a condition for switching back to the first network has met. In response to determining a condition for switching back to the first network has met, the operations further include determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, interrupting receipt of the message from the second network, and switching to the third channel to listen on the first network for communications.

In an additional example, a method in which a gateway device performs operations includes during a first part of a first timeslot of a time slotted channel hopping (TSCH) protocol, listening on a first network using a first channel based on a hopping pattern for the first network. The first network is configured to use the TSCH protocol for communication. The method further includes determining that no message is received from the first network during the first part of the first timeslot. In response to determining that no message is received from the first network during the first part of the first timeslot, the method includes further operations. These operations include determining a second channel of a current dwell interval of a second network based on a hopping sequence for the second network. The second network is configured to use a channel hopping CSMA protocol for communication. These operations also include determining that a message is received from the second network during the second part of the first timeslot. In response to determining that a message is received from the second network during the second part of the first timeslot, the operations include continuing to receive the message from the second network during a remainder of the first timeslot. The operations also include during a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network, determining that a condition for switching back to the first network has met. In response to determining that a condition for switching back to the first network has met, the operations include determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, interrupting receipt of the message from the second network, and switching to the third channel to listen on the first network for communications.

These illustrative aspects and features are mentioned not to limit or define the invention, but to provide examples to aid understanding of the inventive concepts disclosed in this application. Other aspects, advantages, and features of the present invention will become apparent after review of the entire application.

BRIEF DESCRIPTION OF THE FIGURES

These and other features, aspects, and advantages of the present disclosure are better understood when the following Detailed Description is read with reference to the accompanying drawings, where:

FIG. 1 is a diagram illustrating an example of heterogeneous data networks where a gateway device with a single transceiver to communicate with nodes in the heterogeneous data networks;

FIG. 2 is a diagram illustrating an example of a gateway device configured to communicate with nodes in heterogeneous data networks.

FIG. 3 is a diagram of example protocol stacks for a single radio transceiver device configured to communicate with nodes in heterogeneous data networks;

FIG. 4 is a diagram illustrating an example of a timeslot in a time slotted channel hopping (TSCH) network;

FIG. 5 is a diagram illustrating an example of a sequence of timeslots in a TSCH network compared with a sequence of dwell intervals in a channel hopping CSMA network;

FIG. 6 is an example of a flowchart depicting a process for communicating with nodes in heterogeneous data networks including a TSCH network and a channel hopping CSMA network;

FIG. 7 is another example of a flowchart depicting a process for communicating with nodes in heterogeneous data networks including a TSCH network and a channel hopping CSMA network; and

DETAILED DESCRIPTION

Systems and methods are provided for facilitating communications in heterogeneous data networks that include multiple different data networks. Each of the data networks includes multiple nodes and the nodes in one network communicate with each other using a protocol different from the nodes in another network. In one example, the data networks can be associated with the same or different resource distribution networks, such as an electricity distribution network or a gas distribution network, to deliver measurement data obtained in the resource distribution network(s).

For example, nodes in one of the data networks might be configured to communicate via a time slotted channel hopping (TSCH) protocol, such as that defined by IEEE 802.15.4e. The TSCH protocol uses a series of timeslots and multiple channel frequencies for communication between nodes on the network. In the TSCH protocol, a timeslot includes an RX wait period which is used for listening on the network for communications. If the node receives communications within the RX wait period of the timeslot, the communications continue in the remaining portion of the timeslot. If a node in the TSCH network listening for communications does not receive communication within the RX wait period of the timeslot, the node may determine that no communication will be received during that timeslot, leaving the remaining portion of the timeslot unused. As such, it can be viewed that a TSCH timeslot includes two parts: the first part including the RX wait period and the second part including the portion that follows the RX wait period. The TSCH protocol also involves channel hopping. At the beginning of each timeslot, the node switches to a channel different from the channel for the previous time slot. The channel for each timeslot is determined by a hopping pattern that repeats for every L timeslots with L being the length of the hopping pattern.

The nodes in the other network might be configured to communicate with each other via a carrier-sense multiple access (CSMA) channel hopping protocol, such as that defined by IEEE 802.15.4e-2012. The channel hopping CSMA protocol associates a dwell interval with each node in the network. During a dwell interval, a node stays on one channel to listen to or transmit communications in the network. When a next dwell interval is up and if the node is in listening mode, the node switches to a different channel to listen for the communications. The channel for each dwell interval is determined based on a hopping sequence defined by the channel hopping CSMA protocol. The dwell intervals for different nodes might not be synchronized. In some examples, a parent node in the network might broadcast the schedule of the dwell intervals to its child nodes. In another example, the root node of the network may broadcast the dwell interval schedule and nodes that are synchronized to the broadcast channel can receive the schedule and synchronize their dwell intervals to the broadcast schedule.

A third data network might implement another communication protocol the same or different from the TSCH protocol and CSMA channel hopping protocol. For simplicity, the following discussion focuses on the communications within two heterogeneous networks and the same principles can be applied to heterogeneous networks having more than two networks. It should be noted that supporting more heterogeneous networks might decrease the performance of each network. Further, adding an additional TSCH-based network may achieve better performance than adding an additional CSMA-based network because the second TSCH-based network can be synchronized with the first TSCH-based network to use part of the timeslot where the first TSCH network is not active.

In an exemplary system, a gateway device is provided to include a single transceiver device configured to communicate with a network configured to communicate via the TSCH protocol, referred to as the first network, and with another network configured to communicate via the channel hopping CSMA protocol, referred to as the second network. As such, the gateway device can be considered as a node in the first network and also a node in the second network. Since a TSCH timeslot may have an unused part, the gateway device can communicate with both the first network and the second network by listening for communications from the first network during the first parts of the TSCH timeslots and listening for communications from the second network during unused parts of TSCH timeslots. This allows the gateway device to communicate with both the first network and the second network using a single radio transceiver.

In one example, the gateway device is configured to operate in the first network by switching to the channel associated with a TSCH timeslot and listening on the first network during a first part of the timeslot. The gateway device determines the channel of the timeslot based on the hopping pattern for the first network. If the gateway device receives a message from the first network during the first part of the timeslot, the gateway device continues to receive the message from the first network in the second part of the timeslot and even the following timeslots. If the gateway device determines that no message is received from the first network during the first part of the timeslot, the gateway device switches to the second network during the second part of the timeslot for communicating with other nodes on the second network. The gateway device determines the channel of the current dwell interval of the second network based on the hopping sequence for the second network. The gateway device switches to that channel and listens on the second network during the second part of the timeslot of the TSCH network. If a message is received from the second network during the second part of the timeslot, the gateway device may continue to receive the message from the second network even if the current timeslot has expired and a new timeslot has started.

In some scenarios, however, the receipt of the message in either the first network or the second network may be interrupted. For example, the heterogamous networks might be configured to ensure the performance or quality of a certain network, for example, according to Quality of Service (QoS) requirements associated with this network. In such a case, one network may be assigned a higher priority over the other network and one or more rules may be identified to ensure the performance of the high-priority network. For example, one of the rules can include that the number of timeslots that the gateway device continuously communicates with the low-priority network cannot be larger than a threshold number. Another rule can include that the gateway is to switch to the high-priority network if an important message is to be received or transmitted in the high-priority network, for example, in a scheduled GTS. Yet another rule can specify the priority of the networks on a packet-by-packet or message-by-message basis. For example, a priority can be assigned to a packet or message in the two networks. If a packet or message being received in one network has an indication that the packet or message has a higher priority such as a QoS value indicating low latency requirement for the packet or message, then the gateway device will preempt the other network and send the high-priority packet or message immediately. Based on these rules, one or more conditions can be established for the gateway device to switch from the low-priority network to the high-priority network or to receive or transmit a complete message on the high-priority network.

For example, if the first network has a higher priority than the second network and the gateway device is receiving a message in the second network, at the beginning of a new timeslot and even prior to the complete receipt of the message from the second network, the gateway device may determine that a condition for switching to the first network has met. In that case, the gateway device can stop receiving the message from the second network, determine the current channel of the first network based on the hopping pattern for the first network, and switch to that channel to listen on the first network for communications. Likewise, if the heterogeneous networks are configured to assign a higher priority to the second network than the first network, the gateway device may interrupt the receipt of messages in the first network and switch to the second network for communication in a subsequent timeslot when one or more conditions are met.

These illustrative examples are given to introduce the reader to the general subject matter discussed here and are not intended to limit the scope of the disclosed concepts. The following sections describe various additional aspects and examples with reference to the drawings in which like numerals indicate like elements.

The features discussed herein are not limited to any particular hardware architecture or configuration. A computing device can include any suitable arrangement of components that provide a result conditioned on one or more inputs. Suitable computing devices include multipurpose microprocessor-based computer systems accessing stored software that programs or configures the computing system from a general-purpose computing apparatus to a specialized computing apparatus implementing one or more aspects of the present subject matter. Any suitable programming, scripting, or other type of language or combinations of languages may be used to implement the teachings contained herein in software to be used in programming or configuring a computing device.

Referring now to the drawings, FIG. 1 is a network diagram illustrating an example heterogeneous network 100 that includes two data networks: the first network 110 and the second network 120. The first network 110 includes multiple nodes 112A-112F (which may be referred to herein individually as a node 112 or collectively as the nodes 112). The nodes 112 may include measuring nodes for collecting data from the respective deployed location of the nodes, processing nodes for processing data available to the nodes, router nodes for forwarding data received from one node to another node in the network 110, or nodes that are configured to perform a combination of these functions. The nodes 112 are further configured to communicate with each other so that messages or data can be exchanged between nodes 112 for processing or further transmission. The second network 120 (and the nodes 122A-122E contained therein) can be configured in a similar way as the first network 110.

In one example, each of the two networks can be implemented as an Advanced Metering Infrastructure (AMI) mesh network and associated with a resource distribution network for distributing resources, such as power, water, natural gas to premises, such as dwellings, structures, or other geographical areas. The nodes in the respective network can be deployed to the various locations of the resource distribution network to deliver measurement data obtained in those locations, such as the consumption information of the resource, operational status of the distribution network, and so on. For example, nodes 112 of the first network 110 (or nodes 122 of the second network 120) can include meters such as electricity meters, gas meters, water meters, steam meters, etc. and be implemented to measure various operating characteristics of the resource distribution network and to transmit the collected data through the network 110 (or the network 120) to, for example, the root node 114 of the first network 110 (or the root node 124 of the second network 120).

The root node 114 (or the root node 124) may be configured for communicating with the nodes 112 in the first network 110 (or the nodes 122 in the second network 120) to perform operations such as managing the nodes 112 (or the nodes 122), collecting data from the nodes 112 (or the nodes 122) and forwarding data to the headend system 118 (or the headend system 128). The root node 114 (or the root node 124) can also be configured to function as a node to measure and process data itself. The root nodes 114 (or the root node 124) may be personal area network (PAN) coordinators, gateways, or any other devices capable of communicating with the headend system 118 of the first network 110 (or the headend system 128 of the second network 120). The headend system 118 (or the headend system 128) can function as a central processing system that receives streams of data or messages from the root node 114 (or the root node 124). The headend system 118 (or the headend system 128) can process the collected data or have the collected data be processed for various applications. Although FIG. 1 shows the two networks have separate headend systems, a single headend system can be utilized for both networks. Further, a root node in the first and second networks may communicate with the respective headend system through another network 140 such as the Internet, an intranet, or any other data communication network.

The first network 110 and the second network 120 can thus provide a communication channel between the nodes in the networks and the headend systems. A communication channel can include any suitable means capable of communicating signals between the nodes and the headend systems. Examples of suitable communication media include (but are not limited to) Ethernet cable, wireless data communication, power cables for use in power line communication (“PLC”), etc. Power line communication can include communicating signals via cables used for providing electric power from a utility company to buildings in a geographic area. The first and second networks can be configured using any suitable network topology, such as (but not limited to) a mesh network (as mentioned above), a ring network, a star network, a bus network, etc.

In some configurations, the first network 110 and the second network 120 can be associated with the same resource distribution network or different resource distribution networks. For example, the first network 110 might be associated with an electricity distribution network and the second network 120 might be associated with the gas distribution network. In another example, the first network 110 and the second network 120 are both associated with the same resource distribution network but are deployed at different stages of the network or deployed to different geographical locations. As a result, the first network 110 and the second network 120 may be configured to use different network protocols for communications. For example, the nodes in network 110 may be configured to communicate with each other via a TSCH protocol whereas the nodes in the network 120 are configured to communicate with each other via a channel hopping CSMA protocol.

To enable the communications in the two different networks, a gateway device 102 can be included and configured to support both protocols of the two networks 110 and 120. As such, the gateway device can be considered as a node in the first network 110 and also a node in the second network 120. The gateway device 102 can thus communicate with nodes in the first network 110 and the nodes in the second network 120. It can also facilitate the communications between the two networks by transmitting messages received from the first network 110 to the second network 120, and vice versa. It should be understood that while FIG. 1 shows one gateway device 102, multiple gateway devices that are configured and function similarly to the gateway device 102 can be included in the heterogeneous network 100.

In some implementations, the gateway device 102 is configured with a single radio transceiver that implements more than one MAC interfaces to facilitate the communications with the first network 110 and the second network 120 in the heterogeneous network 100. FIG. 2 is a block diagram illustrating an example of a gateway device 102 with a single transceiver device 220 implementing two MAC interfaces via network interfaces 208 and 210.

The gateway device 102 can include a processor 202. Non-limiting examples of the processor 202 include a microprocessor, an application-specific integrated circuit (ASIC), a state machine, a field programmable gate array (FPGA) or other suitable processing device. The processor 202 can include any number of processing devices, including one. The processor 202 can be communicatively coupled to non-transitory computer-readable media, such as memory device 204. The processor 202 can execute computer-executable program instructions and/or access information stored in the memory device 204.

The memory device 204 can store instructions that, when executed by the processor 202, causes the processor 202 to perform operations described herein. The memory device 204 may be a computer-readable medium such as (but not limited to) an electronic, optical, magnetic, or other storage device capable of providing a processor with computer-readable instructions. Non-limiting examples of such optical, magnetic, or other storage devices include read-only (“ROM”) device(s), random-access memory (“RAM”) device(s), magnetic disk(s), magnetic tape(s) or other magnetic storage, memory chip(s), an ASIC, configured processor(s), optical storage device(s), or any other medium from which a computer processor can read instructions. The instructions may comprise processor-specific instructions generated by a compiler and/or an interpreter from code written in any suitable computer-programming language. Non-limiting examples of suitable computer-programming languages include C, C++, C #, Visual Basic, Java, Python, Perl, JavaScript, ActionScript, and the like.

The gateway device 102 can also include a bus 206. The bus 206 can communicatively couple one or more components of the gateway device 102. Although the processor 202, the memory device 204, and the bus 206 are respectively depicted in FIG. 2 as separate components in communication with one another, other implementations are possible. For example, the processor 202, the memory device 204, and the bus 206 can be respective components of respective printed circuit boards or other suitable devices that can be disposed in gateway device 104 a to store and execute programming code.

The gateway device 102 can also include a transceiver device 220 communicatively coupled to the processor 202 and the memory device 204 via the bus 206. Non-limiting examples of a transceiver device 220 include an RF transceiver and other transceivers for wirelessly transmitting and receiving signals. The transceiver device 220 is capable of implementing at least two MAC interfaces to communicate with the first network 110 and the second network 120 via antennas 208, 210, respectively. While multiple antennas 208 and 210 are shown for illustrative purposes, other aspects include a transceiver device 220 that can communicate with the first network 110 and the second network 120 with a single antenna.

The gateway device 102 can communicate with the first network 110 and the second network 120 using a single transceiver device 220 via the same or differing network protocols. As discussed above, the gateway device 102 can communicate with the second network configured to use a channel hopping CSMA protocol (e.g., Wi-SUN protocol governed by IEEE 802.15.4e-2012) via antenna 210 while the gateway device 102 can communicate with the first network 110 using the TSCH protocol (e.g., network protocol governed by IEEE 802.15.4e) via antenna 208. In some aspects, the gateway device 102 may communicate with both the first network 110 and the second network 120 even if the first network 110 and the second network 120 use different frequencies. For example, gateway device 102 may be configured to send and receive signals with the first data network 110 in a first frequency band while the gateway device 102 may be configured to send and receive signals with the second network 120 in a second frequency band.

As discussed above, the gateway device 102 is capable of implementing two MAC protocols using a single transceiver device 220 (e.g., a single radio). FIG. 3 depicts an example of the protocol stacks for a single radio transceiver device 220 described herein, which includes two protocol stacks 300A and 300B. The two protocol stacks 300A and 300B can be independent except for a shared physical interface (PHY) 310. The PHY 310 can define the specifications of the physical transmission medium, such as the transceiver device 220. The next layers of the protocol stacks 300A and 300B for the gateway device 102 includes a MAC layer 320A and a MAC layer 320B, respectively. MAC layer 320A, for example, defines the addressing and channel access protocols for a TSCH network, allowing the transceiver device 220 to communicate with the first network 110. Similarly, MAC layer 320B can define the addressing and channel access protocols for a channel hopping CSMA network, allowing the transceiver device 220 to communicate with the second network 120. The traffic for MAC layer 320A and MAC layer 320B can be routed through their respective IP layer 330A and 330B. The data for the first network 110 and the data for the second network 120 can be communicated via separate transport layers such as UDP 340A and 340B.

As mentioned above, the first network 110 may be an AMI mesh network, which may follow a TSCH communication protocol to communicate wireless information within the network and outside the network. In the TSCH protocol, nodes within the network are synchronized on a current TSCH timeslot. To communicate with both the first network 110 and the second network 120 using a single transceiver 220, the gateway device 102 can switch between the first network 110 and the second network 120 during TSCH timeslots to listen for communications on the two networks. Thus, the gateway device 102 can support both the first network 110 (operating a TSCH protocol) and the second network 120 (which operate using a non-TSCH protocol) via a single transceiver device 220.

Each timeslot in the TSCH protocol is of a time duration of duration “T” which can be defined in milliseconds or other appropriate time unit. The TSCH protocol also uses multiple channel frequencies for communication between devices in the network. A hopping pattern defines the channel used to communicate during each timeslot for a node in the TSCH network. The hopping pattern defines a channel frequency or channel for each timeslot in the hopping pattern. For example, a hopping pattern may be determined that channel 4 is associated with timeslot 1 and channel 6 is associated with timeslot 2. A node can thus determine, based on the hopping pattern, that it should switch to channel 4 during timeslot 1 and switch to channel 6 during timeslot 2. The hopping pattern may have a hopping pattern length L and the hopping pattern repeats for every L timeslots.

FIG. 4 illustrates a typical TSCH timeslot structure for a timeslot 400. In this example, the time periods shown are exemplary and other values may be used in other implementations (e.g., timeslot 400 is shown with a duration of 25 milliseconds, but other durations of a timeslot are also possible). In a TSCH timeslot structure, a node in the first network 110 listens on a channel determined by the TSCH hopping pattern during a first part 408 of the timeslot 400 for the first network 110. As shown in FIG. 4 , after an RF settle period 402, the node can listen for receiving signals on a channel for a period of time (shown as receiver wait time 404). Typically, the duration of the receiver wait time 404 is dependent on an expected transmit time duration. The transmit time duration is defined by the IEEE 802.15.4e TSCH specification. If the node receives a message prior to the expiration of the receiver wait time 404, then the node can proceed to receive the rest of the message and process the received message. However, if the node does not receive a message prior to the expiration of the receiver wait time 404, then the node may determine that it will not receive a communication from another node on the first network 110 during the present timeslot. In a typical timeslot structure, the remainder of the timeslot 400 may be idle or unused.

In certain aspects, the gateway device 102 communicating in the first network 110 using the TSCH protocol can communicate in the second network 120 (e.g., a Wi-SUN network) during the unused time portion of a TSCH timeslot. As such, as shown in FIG. 4 , in the second part of the timeslot 400, the gateway device 102 may communicate in a channel of the first network 110 or a channel of the second network 120. If the gateway device 102 receives the beginning portion of a message from a node on the first network 110 during the first part 408 of the timeslot 400, the gateway device 102 can continue to receive the message in the first network 110 during the second part 410 of the timeslot 400 (e.g., for the duration of the timeslot 400). If the gateway device 102 does not receive a message from the first network 110 prior to the expiration of the first part 408 of the timeslot 400, then the gateway device 102 may begin to listen for a communication from a node in the second network 120 using a channel determined by the hopping sequence specified by the second network 120. If communication from the second network 120 is received during the second part of the timeslot 400, the gateway device 102 can receive the message from the second network 120 for the remaining duration of the timeslot 400.

FIG. 5 depicts examples of timing diagrams of a sequence of TSCH timeslots implemented in the first network 110 compared with sequences of dwell intervals in the channel hopping CSMA protocol implemented in the second network 120 at the gateway device 102. The timing diagram 500A illustrates a sequence of seven TSCH timeslots at the gateway device 102. Note that in the TSCH protocol, the TSCH timeslots on different network nodes are synchronized, and thus other nodes in the first network also have the same sequence of TSCH timeslots. Each of the seven timeslots includes two parts. As discussed above, in the first part of a timeslot, the gateway device 102 can be configured to listen on the first network 110 for communications in the first network. The second part of the timeslot can be utilized for receiving messages in the first network 110 or communicating in the second network 120 depending on whether a message is received from the first network 110 during the first part of the timeslot.

The timing diagram 500B shown in FIG. 5 illustrates an example of a sequence of dwell intervals used in the channel hopping CSMA protocol of the second network 120 at the gateway device 102. Note that the dwell intervals at other nodes in the second network 120 might not be synchronized with the dwell intervals of the gateway device 102. The timing diagram 500C illustrates another example of a sequence of dwell intervals of the second network 120 at the gateway device 102. As will be discussed later, the dwell intervals shown in the timing diagram 500C is coordinated or aligned with the timeslots shown in the timing diagram 500A, whereas the dwell intervals shown in the timing diagram 500B is uncoordinated. As used herein, the dwell intervals of the second network are “uncoordinated” or “unaligned” with the timeslots for the first network at the gateway device 102 if the durations and transitions between dwell intervals are determined independently of the durations and transition between timeslots. On the other hand, they are “coordinated” or “aligned” if the durations and transitions of dwell intervals of the second network is determined based on the durations and transitions of timeslots for the first network so that the number of channel switches after the gateway device 102 switches from one network to another network is reduced or even minimized. In each of the timing diagrams 500B and 500C, the gateway device 102 switches to a channel different from the current channel at the beginning of a next dwell interval based on a hopping sequence for the second network 120 when the gateway device 102 is listening on the second network 120.

In the example shown in FIG. 5 , the gateway device 102 listens and communicates in the first network 110 for the first three timeslots. For example, the gateway device 102 might have received a message from the first network in each of the first three timeslots. The gateway device 102 might also have received a message during the first part of timeslot 1 and continued to receive the message during timeslot 2 or even during timeslot 3. In the fourth timeslot, the gateway device 102 did not receive a message from the first network 110 during the first part of this timeslot. As such, the gateway device 102 can determine that no message will be received from the first network 110 for the remainder of timeslot 4. The gateway device 102 can thus switch to the second network 120 at the beginning of the second part of the timeslot 4, i.e. at time T1, as shown by the dotted downward arrow in FIG. 5 .

If the dwell intervals of the second network 120 is uncoordinated with the TSCH timeslots of the first network 110 at the gateway device 102, i.e. the duration of dwell intervals for the second network 120 at the gateway device 102 are determined independently of the length of timeslots for the first network 110, the dwell intervals might be scheduled as shown in the timing diagram 500B. According to timing diagram 500B, time T1, the time point when the gateway device 102 switches from the first network 110 to the second network 120, is near the end of dwell interval 1. As a result, after the gateway device 102 switches to the second network 120 at time T1, the gateway device 102 needs to perform another channel switch at time T2 based on the hopping sequence of the second network 120 at the gateway device 102 when a new dwell interval starts.

If the duration of dwell intervals at the gateway device 102 for the second network 120 is coordinated with the length of timeslots for the first network 110, the number of channel switches performed by the gateway device 102 can be reduced. For example, the duration of dwell intervals shown in timing diagram 500C is coordinated with the length of timeslots shown in timing diagram 500A in that the duration of dwell intervals is set to be multiple of the length of timeslots. This allows the gateway device 102 to schedule the time of the channel switch between adjacent dwell intervals to be aligned with time T1 when the gateway device 102 switches from the first network 110 to the second network 120, such as at or before time T1. As a result, the number of channel switches by the gateway device 102 can be reduced compared with that for the uncoordinated second network 120. Because switching channels can cause the gateway device 102 to be unavailable for a brief period of time, e.g. around 1 millisecond, reducing the number of channel switches can reduce the unavailable time period of the gateway device 102 thereby improving the performance of the heterogeneous network 100.

It should be understood that the coordinated dwell intervals shown in the timing diagram 500C is for illustration only and should not be construed as limiting. Various other ways of coordinating the duration of the dwell intervals for the second network 120 with the length of timeslots for the first network 110 can be utilized.

After switching to the second network 120, the gateway device 102 listens in the current channel of the second network 120 for communications. If during the second part of timeslot 4, the gateway device 102 receives a message from a node in the second network 120, the gateway device 102 may stay in the second network 120 to continue to receive the message beyond the current timeslot 4 until the message is completely received. At the beginning of a next timeslot, such as timeslot 7 shown in FIG. 5 , the gateway device 102 can switch back to the first network 110, indicated by the upward dotted arrow in FIG. 5 , and listen on the channel associated with timeslot 7 for communications as discussed above.

In some configurations, one of the networks in the heterogeneous network 100 is prioritized. For example, the first network 110 can be prioritized over the second network 120 to ensure the performance of the first network 110, such as to meet the QoS requirements. As such, the gateway device 102 gives a higher priority to the communications in the first network 110 than the second network 120. The gateway device 102 can be configured with one or more conditions for switching from the second network 120 back to the first network 110 regardless of the status of the communication in the second network 120. For example, one condition can specify that the gateway device 102 switches to the first network 110 if the number of timeslots that the gateway device 102 continuously communicates in the second network has reached a threshold number N. Under this condition, the gateway device 102 may drop a message that is being received in the second network 120, even if the entire message has not been received, and switch back to the first network 110 if N timeslots have passed after it switches to the second network 120.

Another condition can include a priority message is to be received in the first network 110 in the current timeslot. To ensure the performance of the prioritized network, the first network 110 in this example, certain messages need to be transmitted and received with high reliability, such as the control or configuration messages from the root node 114 or the headend system 118. These messages can be assigned with a high priority and labeled as priority messages. When a priority message is being transmitted in the first network 110, the gateway device 102 needs to operate in the first network 110 so that it can receive the priority message. In some configurations, the priority messages are transmitted in a time slot designated for priority messages, such as a guaranteed time slot (GTS). A GTS assigned to a node allows the node to transmit messages at any time within that time slot without using mechanisms as such CSMA/CA. The GTSs are assigned to a node according to a schedule or following a message announcing the schedule of the GTS. In either case, the gateway device 102 can estimate the timeslot(s) when the priority messages will be transmitted. If, at the beginning of a timeslot, the gateway device 102 determines that a priority message may be transmitted in the current timeslot, it switches to the first network 110 regardless of the communication status in the second network 120. If the message in the second network 120 has not been completely received, the gateway device 102 drops the message in the second network 120.

In the above example, the first network 110 is prioritized over the second network 120. Likewise, the second network 120 can be prioritized over the first network 110. In that case, the gateway device 102 can be configured to switch from the first network 110 to the second network 120 when one or more conditions are met, such as the number of the timeslots that the gateway device 102 continuously communicates in the first network 110 has met a threshold number, or a time for a dwell interval designated for transmitting prioritized packets has arrived in the second network 120. Once the condition is met, the gateway device 102 will switch to the second network 120 regardless of the communication status in the first network 110. That is, if the receipt or transmission of a message in the first network 110 is not complete, the message will be dropped and the gateway device 102 will switch to the prioritized second network 120. In this way, the quality or performance of the prioritized network can be maintained at a certain level by sacrificing the quality of the other network.

The conditions for switching the gateway device 102 to the prioritized network described above can be derived from rules identified based on the performance requirements of the prioritized network. These conditions are for illustration only, and should not be construed as limiting. Various other conditions can be established based on the various other rules and configured in the gateway device 102 to force the gateway device 102 to switch to the prioritized network to ensure the quality of the prioritized network. For example, rules can be established based on QoS requirements. For example, packets can have various QoS levels specified. A packet could have a QoS level requiring low latency that requires the packet to be transmitted as soon as possible. If the packet was a packet for the first network, the gateway device 102 could stop a CSMA transmission or reception in the second network in order to transmit the low latency packet on the first network. Similarly, if the packet was a packet for the second network, the gateway device 102 could stop the communication in the first network in order to transmit the packet on the second network. In another example, for a packet for the first network (or the second network) with a QoS level indicating a low drop probability, the gateway device 102 could, after some retries, decide to skip the second network time (or the first network time) until it has successfully transmitted the packet, to ensure the delivery of the packet.

FIG. 6 is a flowchart depicting a process 600 for a gateway device 102 communicating with nodes in a heterogeneous data network 100 where the gateway device 102 prioritizes the first network 110, TSCH network over the second network 120, the channel hopping CSMA network. At block 602, the process 600 involves, at the beginning of a timeslot, switching to the channel of the timeslot of the TSCH protocol to operate in the first network 110. The channel of the timeslot can be determined based on the hopping pattern for the TSCH protocol. The gateway device 102 operates in the first network 110 by listening in the first part of the timeslot for communications on the first network 110.

At block 604, the process 600 involves determining whether a message is received during the first part of the timeslot. If so, the process 600 proceeds to block 606 where the gateway device 102 completes the receipt of the message in the first network 110. If the entire message cannot be received during the current timeslot, the gateway device 102 may continue to receive the message in the subsequent timeslot(s). After receiving the message is complete, the gateway device 102 can enter the next timeslot at block 602 as described above.

If, at block 604, the gateway device 102 determines that no message is received in the first part of the timeslot, the process 600 proceeds to block 608 where the gateway device 102 determines the current channel of the second network 120 and switches to that channel to operate in the second network 120. While operating in the second network 120, the gateway device 102 determines, at block 610, if a message or a portion of a message is to be received from the second network 120 beyond the current timeslot. For example, if the gateway device 102 receives a message from the second network 120 during the second part of the timeslot, but doesn't finish receiving the entire message, then the remaining portion of the message is to be received beyond the current timeslot. On the other hand, if no message is received or the gateway device 102 receives a complete message during the second part of the timeslot, then there is no message to be received beyond the timeslot. If no message is to be received beyond the timeslot, the gateway device 102 switches to the first network 110 and enters the next timeslot at block 602.

If, at block 610, the gateway device 102 determines that a message is to be received from the second network 120 beyond the timeslot, the process 600 proceeds to block 612 where the gateway device 102 continues to receive the message in the second network 120 in the subsequent timeslot(s). At block 614, the process 600 involves determining whether the gateway device 102 should switch to the first network 110. The determination can be made, for example, at the beginning of a new timeslot but before the message in the second network 120 is completely received.

Because the first network 110 is prioritized over the second network 120, sometimes the gateway device 102 needs to switch to the first network 110 even if the message in the second network 120 has not been completely received to ensure the performance or quality of the first network 110. For example, the gateway device 102 can determine that it should switch to first network 110 by determining whether one or more conditions have met, such as whether the number of timeslots that the gateway device 102 continuously operates on the second network 120 has reached a threshold number or whether a time slot is designated for a priority message from the first network 110. If one of the conditions is met, the process 600 proceeds to block 616 where the gateway device 102 drops the message in the second network 120 and switches to the first network 110 at block 602. If the gateway device 102 determines that it does not need to switch to the first network 110 at block 614, the process 600 proceeds to block 618 where the gateway device 102 can receive the complete message in the second network 120 before switching to the first network 110 at block 602.

FIG. 7 is a flowchart depicting a process 700 for communicating with nodes in the heterogeneous data network 100 where the gateway device 102 prioritizes the second network 120, such as a channel hopping CSMA network, over the first network 110, such as a TSCH network. At block 702, the process 700 involves, at the beginning of a timeslot, switching to the channel of the timeslot of the TSCH protocol to operate in the first network 110. The channel of the timeslot can be determined based on the hopping pattern for the TSCH protocol. The gateway device 102 operates in the first network 110 by listening in the first part of the timeslot for communications on the first network 110.

At block 704, the process 700 involves determining whether a message is received during the first part of the timeslot. If so, the process 700 proceeds to block 706 where the gateway device 102 continues to receive the message in the first network 110 during the second part of the timeslot. If the entire message cannot be received during the current timeslot, the gateway device 102 may continue to receive the message in the subsequent timeslot(s). At block 712, the process 700 involves determining if the gateway device 102 should switch to the second network 120.

Because the second network 120 is prioritized over the first network 110, sometimes the gateway device 102 needs to switch to the second network 120 even if the message in the first network 110 has not been completely received to ensure the performance or quality of the second network 120. For example, the gateway device 102 can determine that it should switch to the second network 120 by determining whether one or more conditions have met, such as whether the number of timeslots that the gateway device 102 continuously operates on the first network 110 has reached a threshold number or whether a priority message is to be received from the second network 120. If one of the conditions is met, the process 700 proceeds to block 716 where the gateway device 102 drops the message in the first network 110 and switches to the second network 120 and further proceeds to block 718 where the gateway device 102 receives complete messages in the second network 120. If the gateway device 102 determines that it does not need to switch to the second network 120 at block 712, the process 700 proceeds to block 714 where the gateway device 102 can receive the complete message in the first network 110 and then starts another timeslot on the first network 110 at block 702.

If, at block 704, the gateway device 102 determines that no message is received during the first part of the timeslot, the process 700 proceeds to block 708. At block 708, the gateway device 102 determines the current channel of the second network 120 and switch to the second network 120. The current channel of the second network 120 can be determined based on a hopping sequence of the second network 120. At block 710, the process 700 involves determining whether a message is received from the second network 120 during the second part of the timeslot. If no message is received, the process 700 proceeds to block 702 where the gateway device 102 switches to the first network 110 as discussed above. If the gateway device 102 receives a message during the second part of the timeslot, process 700 proceeds to block 718 where the gateway device 102 continues to receive the message from the second network 120 until the entire message is received. The gateway device 102 may switch to first network 110 at the beginning of the next timeslot in block 702.

While the present subject matter has been described in detail with respect to specific aspects thereof, it will be appreciated that those skilled in the art, upon attaining an understanding of the foregoing, may readily produce alterations to, variations of, and equivalents to such aspects. Accordingly, it should be understood that the present disclosure has been presented for purposes of example rather than limitation and does not preclude inclusion of such modifications, variations, and/or additions to the present subject matter as would be readily apparent to one of ordinary skill in the art. 

What is claimed is:
 1. A network device comprising: a single transceiver device configured to communicate with a first network using a time slotted channel hopping (TSCH) protocol and with a second network using a channel hopping carrier-sense multiple access (CSMA) protocol, wherein a duration of a dwell interval for the channel hopping CSMA protocol is coordinated with a length of a timeslot for the TSCH protocol at the network device so that the duration of the dwell interval is an integer number of times of the length of the timeslot, the integer number being greater than one, and wherein a start of a dwell interval for the channel hopping CSMA protocol is coordinated to align with a particular time point of a timeslot for the TSCH protocol; a processing device; and a memory device in which instructions executable by the processing device are stored for causing the processing device to perform operations comprising: during a first part of a first timeslot of the TSCH protocol, listening on the first network using a first channel based on a hopping pattern for the TSCH protocol; determining that no message is received from the first network during the first part of the first timeslot; and in response to determining that no message is received from the first network during the first part of the first timeslot, determining a second channel of a current dwell interval of the second network based on a hopping sequence for the channel hopping CSMA protocol, switching to the second channel to listen on the second network during a second part of the first timeslot, determining that a message is received from the second network during the second part of the first timeslot, and in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network beyond the first timeslot.
 2. The network device of claim 1, wherein the operations further comprising, at a beginning of a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network: determining that a condition for switching back to the first network is satisfied, and in response to determining that a condition for switching back to the first network is satisfied, determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, stopping receiving the message from the second network, and switching to the third channel to listen on the first network during a first part of the second timeslot.
 3. The network device of claim 2, wherein the condition for switching back to the first network comprises one or more of: a number of timeslots that the network device continuously communicates with the second network has reached a threshold number; or a priority message is to be received in the first network in a current timeslot.
 4. The network device of claim 1, wherein the operations further comprise: when listening in the second network, switching from the second channel of the current dwell interval to a different channel at a beginning of a next dwell interval based on the hopping sequence for the channel hopping CSMA protocol to continue to listen in the second network.
 5. The network device of claim 1, wherein the start of the dwell interval for the channel hopping CSMA protocol is aligned with a start of the second part of a timeslot for the TSCH protocol.
 6. The network device of claim 1, wherein the dwell interval of the transceiver device and another dwell interval of another node in the second network are not synchronized.
 7. The network device of claim 1, further comprising a metering device configured to measure energy consumption and transmit energy consumption information to a central system via the first network or the second network.
 8. A system comprising: a first network comprising a first plurality of nodes that communicate via a time slotted channel hopping (TSCH) protocol, the first plurality of nodes comprising a network device; and a second network comprising a second plurality of nodes that communicate via a channel hopping carrier-sense multiple access (CSMA) protocol, the second plurality of nodes comprising the network device, wherein a duration of a dwell interval for the channel hopping CSMA protocol is coordinated with a length of a timeslot for the TSCH protocol at the network device so that the duration of the dwell interval is an integer number of times of the length of the timeslot, the integer number being greater than one, and wherein a start of a dwell interval for the channel hopping CSMA protocol is coordinated to align with a particular time point of a timeslot for the TSCH protocol, wherein the network device comprises a single transceiver device configured to communicate with the first network using the TSCH protocol and with the second network using the channel hopping CSMA protocol, the network device being configured for: during a first part of a first timeslot of the TSCH protocol, listening on the first network using a first channel based on a hopping pattern for the TSCH protocol; determining that no message is received from the first network during the first part of the first timeslot; in response to determining that no message is received from the first network during the first part of the first timeslot, determining a second channel of a current dwell interval of the second network based on a hopping sequence for the channel hopping CSMA protocol, and switching to the second channel to listen on the second network during a second part of the first timeslot; determining that a message is received from the second network during the second part of the first timeslot; and in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network during a remainder of the first timeslot.
 9. The system of claim 8, wherein the network device, when listening in the second network, is configured to switch from the second channel of the current dwell interval to a different channel at a beginning of a next dwell interval to continue to listen in the second network.
 10. The system of claim 8, wherein the network device is further configured for, during a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network: determining that a condition for switching back to the first network has met; and in response to determining a condition for switching back to the first network has met, determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, interrupting receipt of the message from the second network, and switching to the third channel to listen on the first network for communications.
 11. The system of claim 10, wherein the condition for switching back to the first network comprises one or more of: a number of timeslots that the network device continuously communicates with the second network has reached a threshold number; or a priority message is to be received in the first network in a current timeslot.
 12. The system of claim 8, wherein the start of the dwell interval for the channel hopping CSMA protocol is aligned with a start of the second part of a timeslot for the TSCH protocol.
 13. The system of claim 8, wherein the dwell interval of the transceiver device and another dwell interval of another node in the second network are not synchronized.
 14. A method in which a network device performs operations comprising: during a first part of a first timeslot of a time slotted channel hopping (TSCH) protocol, listening on a first network using a first channel based on a hopping pattern for the first network, wherein the first network is configured to use the TSCH protocol for communication; determining that no message is received from the first network during the first part of the first timeslot; and in response to determining that no message is received from the first network during the first part of the first timeslot, determining a second channel of a current dwell interval of a second network based on a hopping sequence for the second network, wherein the second network is configured to use a channel hopping carrier-sense multiple access (CSMA) protocol for communication, wherein a duration of a dwell interval for the channel hopping CSMA protocol is coordinated with a length of a timeslot for the TSCH protocol at the network device so that the duration of the dwell interval is an integer number of times of the length of the timeslot, the integer number being greater than one, and wherein a start of a dwell interval for the channel hopping CSMA protocol is coordinated to align with a particular time point of a timeslot for the TSCH protocol, switching to the second channel to listen on the second network during a second part of the first timeslot, determining that a message is received from the second network during the second part of the first timeslot, and in response to determining that a message is received from the second network during the second part of the first timeslot, continuing to receive the message from the second network during a remainder of the first timeslot.
 15. The method of claim 14, wherein the operations further comprise, during a second timeslot subsequent to the first timeslot of the TSCH protocol and prior to completion of receiving the message from the second network: determining that a condition for switching back to the first network has met; and in response to determining that a condition for switching back to the first network has met, determining a third channel of the first network based on the hopping pattern for the TSCH protocol of the first network, interrupting receipt of the message from the second network, and switching to the third channel to listen on the first network for communications.
 16. The method of claim 15, wherein the condition for switching back to the first network comprises one or more of: a number of timeslots that the network device continuously communicates with the second network has reached a threshold number; or a priority message is to be received in the first network in a current timeslot.
 17. The method of claim 14, wherein the start of the dwell interval for the channel hopping CSMA protocol is aligned with a start of the second part of a timeslot for the TSCH protocol.
 18. The method of claim 14, wherein the dwell interval of the network device and another dwell interval of another node in the second network are not synchronized.
 19. The method of claim 14, wherein the operations further comprise, when listening in the second network, switching from the second channel of the current dwell interval to a different channel at a beginning of a next dwell interval to continue to listen in the second network.
 20. The method of claim 14, wherein the first part of the first timeslot comprises a receiver wait time period for listening in the first network for incoming messages. 